#1)  A = {1, 2, 3, 4, 5}     B = {4, 5, 6, 7, 8}
#     获取两个集合的交集
def a(setA,setB):   #创建函数(参数是集合）
    c=set()         #创建空列表
    for i in setA:  #遍历集合A
        if i in setB:  #判断i是否在集合B里
            c.add(i)   #添加到空列表里
    print(c)
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
a(A,B)
#     并集
def b(setA,setB):
    for i in setA:
        if i not in setB:
            setB.add(i)
    print(setB)
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
b(A,B)

#  获取A中有，但是B中没有的
def c(setA,setB):
    c=set()
    for i in setA:
        if i not in setB:
            c.add(i)
    print(c)
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
c(A,B)
#   检查A是否是B的子集
def d(setA,setB):
    c=set()
    for i in setA:
        if i not in setB:
          return False
    return True

A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
print(d(A,B))
#    每个小题定义一个函数并且调用

#2）从列表中找出只出现一次的元素
#创建空列表，遍历已有列表，用count计算出现一次的元素并加入到空列表里
def f(list1):
    c=list()
    for i in list1:
        if (list1.count(i))== 1 :
            c.append(i)
    print(c)
d=[12,12,23,32,45,21]
f(d)
#3）找出一个列表中只出现一次的元素 不通过count()方法查找

def f1(list1):
    c=dict()
    for i in list1:
        if i not in c: #将列表中的元素作为key值添加到字典里，出现次数作为对应的value值；
            c[i]=1
        else:
            c[i]+=1
        if c[i]>1:   #若value大于1，删除对应的key
            del c[i]
    print(list(c))

d1=[12,12,23,32,45,21,'tom','tom']
f1(d1)

#方法二
def f1(list1):
    c=dict()
    for i in list1:
        if i not in c: #将列表中的元素作为key值添加到字典里，出现次数作为对应的value值；
            c[i]=1
    print(c)

def f2(dict1):
    c=list()
    for k,v in dict1.items():
        if dict1[k]==1: #将列表中的元素作为key值添加到字典里，出现次数作为对应的value值；
            c.append(k)
    print(c)
d1=[12,12,23,32,45,21,'tom','tom']
f2(f1(d1))




